import 'package:get/get.dart';
import 'package:in_app_purchase/in_app_purchase.dart';
import 'package:yyshort/common/model/goods_model.dart';
import 'package:yyshort/common/model/video_model.dart';

/// 内购页面的状态管理类
/// 作用：存储所有需要在UI上展示或控制器中处理的状态变量
/// 使用GetX的响应式变量（Rx）实现状态变化的自动监听
class PaymentState {
  // 内购服务是否可用
  final RxBool isAvailable = false.obs;

  // 商品列表（从应用商店查询到的商品详情）
  final RxList<ProductDetails> products = <ProductDetails>[].obs;

  // 未找到的商品ID列表
  final RxList<String> notFoundIds = <String>[].obs;

  // 已购买的商品列表
  final RxList<PurchaseDetails> purchases = <PurchaseDetails>[].obs;

  // 已购买的消耗品列表
  final RxList<String> consumables = <String>[].obs;

  // 购买是否处于处理中状态
  final RxBool purchasePending = false.obs;

  // 是否正在加载中
  final RxBool loading = true.obs;

  // 商品查询错误信息
  final RxString queryProductError = ''.obs;

  //自定义商品
  // 消耗类型
  RxList<GoodsModel> conTypeList = <GoodsModel>[].obs;
  // 订阅类型
  RxList<GoodsModel> subTypeList = <GoodsModel>[].obs;

  ///服务器订单ID
  RxString order_id = ''.obs;

  EpisodeModel? episodeModel;

  RxBool isNeedLoading = false.obs;
}
